package cn.itcast.web.cookie;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/*
  cookie细节操作:
 4.cookie获取范围多大(能否在多个项目中共享)？
     1.假设在一个tomcat服务器中，部署了多个web项目,那么在这些web项目中cookie能不能共享?
         *默认情况下，cookie是不能被多个项目共享的。
          即当客户端向虚拟目录为/day16的项目发出请求然后该项目发送cookie到浏览器，将来可以在/day16
          项目中获取客户端请求带来的cookie数据，而在同一个服务器下部署的/day15项目是不能获取到cookie的
         *但可以通过cookie的setPath(String path)方法来设置cookie的获取范围。若发送cookie之前没有
          写该方法则默认设置cookie的获取范围是当前的虚拟目录所对应的项目范围。即setPath("/day16");
     2.现在需求是其它项目也能获取到这个cookie:
          这就需要把路径设置更大，即cookie.setPath("/");
          即当前服务器的根目录下的项目都可以访问到这个cookie中数据。
          localhost/day16/cookieServletDemo,服务器下的day15还是day16都可以访问cookie.
* */
@WebServlet("/cookieservletDemo6")
public class CookieServletDemo6 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //1.创建Cookie对象
        Cookie cookie=new Cookie("msg","hello");
        //2.设置cookie获取范围为服务器下部署的所有项目都可以共享cookie信息。
        //这里就不在另建项目并另建一个服务器来验证了
        cookie.setPath("/");
        //2.发送Cookie到浏览器
        response.addCookie(cookie);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}
